package com.demo.rabbitmq.config;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public enum FanoutQueueEnum {

    FANOUT_QUEUE1("fanout_queue1", FanoutExchangeEnum.FANOUT_EXCHANGE, FanoutRoutingKeyEnum.FANOUT_QUEUE_ROUTING_KEY),
    FANOUT_QUEUE2("fanout_queue2", FanoutExchangeEnum.FANOUT_EXCHANGE, FanoutRoutingKeyEnum.FANOUT_QUEUE_ROUTING_KEY),
    FANOUT_QUEUE3("fanout_queue3", FanoutExchangeEnum.FANOUT_EXCHANGE, FanoutRoutingKeyEnum.FANOUT_QUEUE_ROUTING_KEY),
    ;

    private final String queueName;
    private final FanoutExchangeEnum exchangeEnum;
    private final FanoutRoutingKeyEnum routingKeyEnum;

    FanoutQueueEnum(String queueName, FanoutExchangeEnum exchangeEnum, FanoutRoutingKeyEnum routingKeyEnum) {
        this.queueName = queueName;
        this.exchangeEnum = exchangeEnum;
        this.routingKeyEnum = routingKeyEnum;
    }

    public FanoutExchangeEnum getExchange() {
        return this.exchangeEnum;
    }

    public String getQueueName() {
        return this.queueName;
    }

    public String getRoutingKeyName() {
        return this.routingKeyEnum.getRoutingKeyName();
    }
}
